package JavaSE.d5;

import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;

/*
	使用Files类的newDirectoryStream方法对子文件进行过滤
要求1：实现对子文件的大小的过滤，查询文件长度大于1M的文件.
要求2：实现对子文件名称的过滤，查询文件名包含字母a的文件.
要求3：实现对子文件后缀的过滤，查询所有png文件.
要求4：实现对子文件后缀的过滤，查询所有png文件和gif文件.
要求5：实现对子文件的过滤，查询所有文件（非目录）.
要求6：实现对子文件的过滤，查询包含字母a的目录名.
 */
public class Test22 {
    public static void main(String[] args) throws IOException {
        Path p= Path.of("C:\\Users\\a\\Desktop\\新项目\\创想软件/contest");
        DirectoryStream<Path> paths = Files.newDirectoryStream(p, e -> Files.size(e) > 1024);//查询文件长度大于1M的文件.
        paths.forEach(e-> System.out.println("文件长度大于1M的文件"+e));

        paths=Files.newDirectoryStream(p,e->!Files.isDirectory(e)&&e.getFileName().toString().contains("a"));//查询文件名包含字母a的文件.
        paths.forEach(e-> System.out.println("查询文件名包含a的文件"+e));

        paths=Files.newDirectoryStream(p,"*.png");//查询所有png文件.
        paths.forEach(e-> System.out.println("查询所有png文件."+e));

        paths=Files.newDirectoryStream(p,e->e.getFileName().toString().endsWith("png")||e.getFileName().toString().endsWith("jpg"));//查询所有png文件和jpg文件.
        paths.forEach(e-> System.out.println("查询所有png文件和jpg文件."+e));

        paths=Files.newDirectoryStream(p,e->!Files.isDirectory(e));//查询所有文件（非目录）
        paths.forEach(e-> System.out.println("查询所有文件（非目录）"+e));

        paths=Files.newDirectoryStream(p,e->Files.isDirectory(e)&&e.getFileName().toString().contains("a"));//查询包含字母a的目录名.
        paths.forEach(e-> System.out.println("查询包含字母a的目录名."+e));

    }
}
